﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TerhelesEloszto.Common
{
	/// <summary>
	/// Oktatót reprezentáló interfész.
	/// </summary>
	public interface ITeacher : IUser
	{
		/// <summary>
		/// Az oktató szakmai preferenciái.
		/// </summary>
		List<ISkill> Skills { get; }

		/// <summary>
		/// Az oktató szakmai preferenciái.
		/// </summary>
		/// <returns>Az oktató szakmai preferenciái.</returns>
		List<ISkill> GetSkills();

		/// <summary>
		/// Az oktató személyes preferenciái.
		/// </summary>
		List<ILike> PersonalPreferences { get; }

		/// <summary>
		/// Az oktató személyes preferenciái.
		/// </summary>
		/// <returns>Az oktató személyes preferenciái.</returns>
		List<ILike> GetPersonalPreferences();

		/// <summary>
		/// Az oktató által elvégezhető feladatok lisátja.
		/// </summary>
		List<ITask> AcceptableTasks { get; }

		/// <summary>
		/// Az oktató által elvégezhető feladatok lisátja.
		/// </summary>
		/// <returns>Az oktató által elvégezhető feladatok lisátja.</returns>
		List<ITask> GetAcceptableTasks();

		/// <summary>
		/// Az oktató órarendje.
		/// </summary>
		ITimeTable PersonalTimeTable { get; }

		/// <summary>
		/// Az oktató órarendje.
		/// </summary>
		/// <returns>Az oktató órarendje.</returns>
		ITimeTable GetPersonalTimeTable();

		/// <summary>
		/// Megadja az oktató és a feladat viszonyát.
		/// </summary>
		/// <param name="t">A feladat.</param>
		/// <returns>A csillagok száma.</returns>
		int GetStars( ITask t );
	}
}

